// #include<stdio.h>
// #include<stdbool.h>
// void maopao(int arr[],int k)
// {
// for (int i = 0; i < k-1; i++)
// {
//     bool pai =  false;
//     for (int j = 0; j < k-1-i; j++)
//     {
//         if(arr[j]>arr[j+1])
//         {
//             int temp = arr[j];
//             arr[j] = arr[j+1];
//             arr[j+1] = temp;
//             pai = true;
//         }
//     }
//     if(!pai)
//     {
//         break;
//     }
// }
// }
// int main()
// {
//     // int arr[1000] = {0};
//     // int max = 0;
//     // int min = 99999;
//     // int a = 0;
//     // scanf("%d",&a);
//     // for (int  i = 0; i < a; i++)
//     // {
//     //     scanf("%d",&arr[i]);
//     //     if(arr[i]>max)
//     //     {
//     //         max = arr[i];
//     //     }
//     //     if(arr[i]<min)
//     //     {
//     //         min = arr[i];
//     //     }
//     // }
//     // int end = max - min;
//     // printf("%d",end);
// // int a = 0;
// // int arr[100];
// // int look = 0;
// // scanf("%d",&a);
// // for (int i = 0; i < a; i++)
// // {
// //     scanf("%d",&arr[i]);
// // }
// // scanf("%d",&look);
// // for (int  i = 0; i < a; i++)
// // {
// //     if(arr[i]==look)
// //     {
// //         printf("Find");
// //         return 0;
// //     }
// // }
// // printf("Not Find");
// //     return 0;
// // int a = 0;
// // int arr[100];
// // int look = 0;
// // scanf("%d",&a);
// // for (int i = 0; i < a; i++)
// // {
// //     scanf("%d",&arr[i]);
// // }
// // scanf("%d",&look);
// // for (int  i = 0; i < a; i++)
// // {
// //     if(arr[i]==look)
// //     {
// //         printf("Find");
// //         return 0;
// //     }
// // }
// // printf("Not Find");
//     int a = 0;
//     int arr[100000];
//     scanf("%d",&a);
//     for (int i = 0; i < a; i++)
//     {
//         scanf("%d",&arr[i]);
//     }
//         int quchongsz[100000];
//         int quchongcount = 0;
//         bool whichshu[10000] = {0};
//         for (int i = 0; i < a; i++)
//         {
//             if(!whichshu[arr[i]])
//             {
//                 whichshu[arr[i]] = true;
//                 quchongsz[quchongcount++] = arr[i];
//             }
//         }
// maopao(quchongsz,quchongcount);
// for (int i = 0; i < quchongcount; i++)
// {
//     printf("%d ",quchongsz[i]);
// }
// return 0;
// }



#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
void zhuan(char str[],char end[])
{
    int a = 0;
    int b =0;

    for (int i = 0; str[i] != '\0'; i++)
    {
        if (str[i] != ' ')
            end[b++] = tolower(str[i]);
        
        

    }
    end[b] = '\0';
}

int main()
{

    char arr1[1001], arr2[1001];
    char end1[1001], end2[1001];
    fgets(arr1, 1000, stdin);
    fgets(arr2, 1000, stdin);

    arr1[strcspn(arr1, "\n")] = '\0';
    arr2[strcspn(arr2, "\n")] = '\0';

    zhuan(arr1,end1);
    zhuan(arr2,end2);


    if (strcmp(end1, end2) == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");


    }


    return 0;
}